1. Field of the Invention
The present invention relates generally to database security, and more specifically, to a method and system for providing security in a database by providing partial access to database information in response to provided access information.
2. Background of the Invention
Present-day databases are protected from “data mining” (unauthorized copying of contents of the database) and unauthorized use (undesired access to the database) by a variety of means. Predominantly, entire databases are encrypted using an algorithm such as Data Encryption Standard (DES) or other private key/public key encryption algorithm so that access to the database requires knowledge of a key that permits decryption of the entire database.
A drawback of typical database encryption techniques is that once a user is permitted to access (decrypt) a particular database record, the user has access to the entire database. In some applications, it is desirable to restrict access to a database to a limited portion of the database. In the most restrictive sense, it is desirable to restrict access to only a single database element. For example, such security would be useful in delivery address translation systems for use by United States Postal Service (USPS) customers. Current federal statutes provide that the USPS cannot provide address lists to unrestricted and unlicensed agents, while individual address translations (from the old rural address system to the new city style address system) may be provided to anyone through a controlled process.
For the above reason, rural addresses that have been converted to a city-style address present an inconvenience in managing delivery operations. When using standard address matching software (known as a ZIP+4 engine) to standardize addresses, when a rural address is encountered, a cross-reference table: the Locatable Address Conversion System (LACS), must be used to convert the rural address to a city-style address. The ZIP+4 engine provides a full 11-digit ZIP code for a newer city-style address, but older rural addresses must be first converted to a newer city-style address using the LACS before an 11-digit ZIP code can be assigned. Since the LACS comprises an address lists the LACS cannot be generally distributed.
Typical database encryption does not provide an adequate solution for the above-described problem. Individual elements cannot typically be extracted without decrypting the database or providing a universal key and further, computation to extract small portions of the information can be quite involved as the large decryption polynomials must be computed over a significantly larger portion of the database (significantly larger than the stored element). Further, if database elements are individually protected, keys must be produced for every database element, resulting in an unworkable over-complicated system.
In the above-mentioned address translation application, as well as in many other protected database applications, a database protection scheme that protects all information other than information for which the corresponding access information is known (e.g., the street address of a particular customer for which the rural address is known) would be very useful. Retrieval software and a database could be supplied to anyone without enabling data mining or unauthorized access. Information could not be retrieved from the protected database without knowing the corresponding access information, but information could be retrieved knowing only the non-translated information.
Therefore, it would be desirable to provide a method and system for storing and retrieving information to and from a data store that provides protection of the entire database information and access to only a portion of the database information. It would further be desirable to provide a method for retrieving the information from a data store that has a relatively low computational burden. Finally it would be desirable to provide a method and system for storing and retrieving elements from a translating data store requiring only input of the non-translated information to retrieve the translation information.